--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / js / resourceBreakdown.js
Displaying Raw • Download
meshchatx/src/frontend/js/resourceBreakdown.js c0b0ddffd735a0d007c1be9a5e8563ec42fdafc0 (c0b0ddff) Text, 2.27 KB
T8b949e// SPDX-License-Identifier: 0BSD AND MIT
T8b949e/**
* Merge backend resource_breakdown with optional Electron private memory.
* Electron processMemoryInfo values are kilobytes.
*
* @param {Array<{name?: string, rss?: number|null, cpu_percent?: number|null}>|null|undefined} breakdown
* @param {{ private?: number, residentSet?: number }|null|undefined} electronMemory
* @returns {Array<{name: string, rss: number|null, cpu_percent: number|null}>}
*/
Tff7b72export Tff7b72function Te6edf3mergeResourceBreakdownTb4b4b4(Te6edf3breakdownTb4b4b4, Te6edf3electronMemoryTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3rows Tff7b72= Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3breakdownTb4b4b4)
Tff7b72? Te6edf3breakdown
Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3rowTb4b4b4) Tb4b4b4=> Te6edf3row Tff7b72&& Tff7b72typeof Te6edf3row Tff7b72=== Ta5d6ff"object"Tb4b4b4)
Tb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3rowTb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{
Te6edf3nameTff7b72: Tffa657StringTb4b4b4(Te6edf3rowTb4b4b4.Te6edf3name Tff7b72|| Ta5d6ff"process"Tb4b4b4)Tb4b4b4,
Te6edf3rssTff7b72: Te6edf3rowTb4b4b4.Te6edf3rss Tff7b72== Tff7b72null Tff7b72? Tff7b72null Tff7b72: Tffa657NumberTb4b4b4(Te6edf3rowTb4b4b4.Te6edf3rssTb4b4b4)Tb4b4b4,
Te6edf3cpu_percentTff7b72: Te6edf3rowTb4b4b4.Te6edf3cpu_percent Tff7b72== Tff7b72null Tff7b72? Tff7b72null Tff7b72: Tffa657NumberTb4b4b4(Te6edf3rowTb4b4b4.Te6edf3cpu_percentTb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4)
Tff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3electronMemory Tff7b72&& Tff7b72typeof Te6edf3electronMemory Tff7b72=== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3kb Tff7b72= Tffa657NumberTb4b4b4(Te6edf3electronMemoryTb4b4b4.Tff7b72private Tff7b72?? Te6edf3electronMemoryTb4b4b4.Te6edf3residentSetTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3kbTb4b4b4) Tff7b72&& Te6edf3kb Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3rowsTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"electron"Tb4b4b4,
Te6edf3rssTff7b72: Tffa657MathTb4b4b4.Te6edf3roundTb4b4b4(Te6edf3kb Tff7b72* T79c0ff1024Tb4b4b4)Tb4b4b4,
Te6edf3cpu_percentTff7b72: Tff7b72nullTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3rowsTb4b4b4;
Tb4b4b4}
T8b949e/**
* @param {Array<{name: string, rss: number|null, cpu_percent: number|null}>} rows
* @returns {{name: string, rss: number|null, cpu_percent: number|null}|null}
*/
Tff7b72export Tff7b72function Te6edf3topResourceByRssTb4b4b4(Te6edf3rowsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3rowsTb4b4b4) Tff7b72|| Te6edf3rowsTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Tb4b4b4) Tff7b72return Tff7b72nullTb4b4b4;
Tff7b72const Te6edf3scored Tff7b72= Te6edf3rowsTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3rTb4b4b4) Tb4b4b4=> Te6edf3rTb4b4b4.Te6edf3rss Tff7b72!= Tff7b72null Tff7b72&& Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3rTb4b4b4.Te6edf3rssTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3scoredTb4b4b4.Te6edf3lengthTb4b4b4) Tff7b72return Tff7b72nullTb4b4b4;
Tff7b72return Te6edf3scoredTb4b4b4.Te6edf3reduceTb4b4b4(Tb4b4b4(Te6edf3bestTb4b4b4, Te6edf3rowTb4b4b4) Tb4b4b4=> Tb4b4b4(Te6edf3rowTb4b4b4.Te6edf3rss Tff7b72> Te6edf3bestTb4b4b4.Te6edf3rss Tff7b72? Te6edf3row Tff7b72: Te6edf3bestTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/**
* @param {Array<{name: string, rss: number|null, cpu_percent: number|null}>} rows
* @returns {{name: string, rss: number|null, cpu_percent: number|null}|null}
*/
Tff7b72export Tff7b72function Te6edf3topResourceByCpuTb4b4b4(Te6edf3rowsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3rowsTb4b4b4) Tff7b72|| Te6edf3rowsTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Tb4b4b4) Tff7b72return Tff7b72nullTb4b4b4;
Tff7b72const Te6edf3scored Tff7b72= Te6edf3rowsTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3rTb4b4b4) Tb4b4b4=> Te6edf3rTb4b4b4.Te6edf3cpu_percent Tff7b72!= Tff7b72null Tff7b72&& Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3rTb4b4b4.Te6edf3cpu_percentTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3scoredTb4b4b4.Te6edf3lengthTb4b4b4) Tff7b72return Tff7b72nullTb4b4b4;
Tff7b72return Te6edf3scoredTb4b4b4.Te6edf3reduceTb4b4b4(Tb4b4b4(Te6edf3bestTb4b4b4, Te6edf3rowTb4b4b4) Tb4b4b4=> Tb4b4b4(Te6edf3rowTb4b4b4.Te6edf3cpu_percent Tff7b72> Te6edf3bestTb4b4b4.Te6edf3cpu_percent Tff7b72? Te6edf3row Tff7b72: Te6edf3bestTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────